package com.hst.capacity.domain.enums;

import lombok.Getter;

/**
 * 报文回执响应码枚举定义类
 */
@Getter
public enum Rep {

    /* 成功响应 */
    SUCCESS(0, "成功"),

    /* 客户端错误响应 */
    BAD_REQUEST(4001, "请求参数不正确。"),
    INVALID_ACCESS_TOKEN(4002, "Token已失效，请重新登录。"),

    UNAUTHORIZED(4003, "没有授权！"),

    /* 服务端错误响应 */
    UNKNOWN_EXCEPTION(5000, "未知的系统异常"),
    DATA_ACCESS_EXCEPTION(5001, "数据存储错误"),

    /* 自定义业务错误响应
     * 6位数字编码，以901001为例说明：
     * 第1位，响应类型
     *      9   -   自定义业务级
     *      x   -   按需定义其他类型
     * 第2-3位，系统或模块
     *      01  -   用户
     *      02  -   XXX
     * 第4-6位，错误响应码
     * 建议按模块自增编码。
     *      001 -   身份验证失败
     *      002 -   XXX
     * */
    /* e.g. */
    AUTHENTICATION_FAILURE(901001, "身份验证失败");

    private Integer code;

    private String message;

    Rep(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
